package br.com.ilha.dao;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;

import br.com.ilha.entity.Estado;
import br.com.ilha.hibernate.HibernateUtil;

public class EstadoDao {
	
	private Session session;
	
	public EstadoDao() {
		session = new HibernateUtil().getSession();
	}

	public void adiciona(List<Estado> estados) {
		
		session.beginTransaction();
		
		for (Estado estado : estados) {
			session.save(estado);
		}
		
		session.getTransaction().commit();
		session.close();
		
	}

	public List<Estado> listAll() {
		return session.createCriteria(Estado.class).list();
	}
	
	public Estado findById(Long id) {
		return (Estado) session.load(Estado.class, id);
	}

	public Estado findByUf(String uf) {
		
		Query query = this.session.createQuery("FROM Estado WHERE uf = :pUf");
		query.setString("pUf", uf);
		return (Estado) query.uniqueResult();

	} 
}
